In a Multiple-Input-Multiple-Output (MIMO) communication system, a plurality of transmitters and receivers may be operated together to increase the data throughput when radio conditions are favorable, by transmitting a plurality of data streams using the same radio frequency space as used in a single stream system. The result is increased spectrum efficiency, i.e., more bits per second per Hz, but at the cost of a technically more complicated system.
In particular, interference between individual ones of the MIMO data streams complicates MIMO reception. (In Wideband Code Division Multiple Access (WCDMA)/High Speed Downlink Packet Access (HSDPA), inter-stream interference between MIMO streams is referred to as interference and is called code reuse interference.) Joint detection (JD) and Successive Interference Cancellation (SIC) are two different principles for suppressing the interference between data streams.
As its name suggests, SIC uses a successive processing approach to interference suppression. For example, among two or more received streams, a SIC receiver may process the strongest or highest SNR stream first, and then use the results of that processing to suppress inter-stream interference in a next stream. Multiple streams thus may be processed in successive fashion, within allowable processing time limits.
As for JD processing, a JD receiver can compute the joint detection estimate of a two stream symbol vector s=[s0;s1], in two broad steps. As a first step, the JD receiver computes an S-matrix, denoted as S. The S-matrix accounts for some statistical properties of the interference between the data streams. The receiver also computes a combined symbol vector z, which contains raw symbol estimates of the current symbol pair. Note that the S-matrix may be reused for a number of consecutive symbol vectors, especially in HSDPA, where the same S-matrix estimate may be used over a whole slot.
As a second step, the JD receiver determines, for each symbol pair, the symbol vector estimate s that maximizes the metric λ(s)=−(s−z)HS(s−z). The symbol vector estimate s is restricted to the possible constellation points of the two data streams respectively, where the two data streams are allowed to have different modulation constellations.
Performing joint detection on two or more MIMO data streams involving higher-order modulation constellations requires a significant number of computations, given the number of possible symbol combinations that must be considered when computing the metric. Generally, finding the data symbol combination with the best metric is a well bounded undertaking, and imposes reasonable computational requirements. However, depending upon the type of decoding in use, it often is necessary to estimate soft bits.
Obtaining these soft bits requires significantly more processing, as the metric evaluation must be extended to combinations of possible symbols “around” the combination(s) that maximize the JD metric. While some techniques, such as sphere detection, can be used to reduce the search space and, hence, the computational complexity, such techniques do not necessarily lend themselves to efficient circuit implementations. As an example, the previously mentioned sphere detection approach uses a type of conditional tree searching process that is not necessarily possible to parallelize in signal processing hardware. Nor is it necessarily possible to gauge the processing complexity of such approaches in advance.